<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    
  </style>
</head>
<body>
  
</body>
<script>
// fn();
  // console.log(a)
  // var a;
  // console.log(a);
  // a = 10
  // console.log(a);

  // console.log(fn);

  // fn();

  // function fn(){
  //   console.log("hello")
  // }

  // fn();


  // console.log( fn );
  // var fn = function(){}


  
  // console.log( a );
  // function a(){}
  // var a = 10;
  // console.log( a );
  // 等价于↓↓↓
  // var a;
  // function a(){}
  // console.log(a);
  // a = 10;
  // console.log(a)

  // 鸠占鹊巢

  ;(function(){

    console.log(a);       // 
    function a(){ 1 }
    console.log(a);       // 
    var a = "hello";
    console.log(a);       // 
    function a(){ 2 }
    console.log(a);       // 
    var a = function(){ 3 }
    console.log(a);       // 

  })();
  // ↑↑↑等价于↓↓↓
  // ;(function(){
  //   var a;
  //   var a;
  //   function a(){ 1 }
  //   function a(){ 2 }

  //   console.log(a);       // f2
  //   console.log(a);       // f2
  //   a = "hello";
  //   console.log(a);       // hello
  //   console.log(a);       // hello
  //   a = function(){ 3 }
  //   console.log(a);       // f3
  // })();


  // ==========


  ;(function(){
    console.log(a);
    var a = "hello";
    console.log(a);
    function a(){ 1 }
    console.log(a);
    var a = function(){ 2 }
    console.log(a);
    var a = "world"
    console.log(a);
    function a(){ 3 }
    console.log(a);
    function a(){ 4 }
    console.log(a);
  })();
  // ↑↑↑等价于↓↓↓
  // ;(function(){
  //   var a;
  //   var a;
  //   var a;
  //   function a(){ 1 }
  //   function a(){ 3 }
  //   function a(){ 4 }

  //   console.log(a);   // f4
  //   a = "hello";
  //   console.log(a);   // hello
  //   console.log(a);   // hello
  //   a = function(){ 2 }
  //   console.log(a);   // f2
  //   a = "world"
  //   console.log(a);   // world
  //   console.log(a);   // world
  //   console.log(a);   // world
  // })();

  

</script>
</html>